void main() {
  /**
   * 1. 声明字符串 （String）
   *   1. 单引号
   *   2. 双引号
   *   3. 三引号 可以声明包含换行的字符串
   * 2. 字符串的常用API
   *    1. 字符串的长度(length)
   *    2. 字符串的拼接(+)
   *    3. 字符串的截取(substring)
   *    4. 字符串的分割(split)
   *    5. 字符串的替换(replaceAll)
   * 3. 正则表达式
   *    1. 正则表达式的声明 (RegExp)
   *    2. 正则表达式的常用方法
   *      1. 正则表达式的匹配(match)
   *      2. 正则表达式的替换(replaceAll)
   */

  // 1. 声明字符串
  String str1 = 'Hello World';
  String str2 = "Hello World";
  String str3 = '''
    Hello World \n
    Hello World \n
  ''';
  print('str1: $str1');
  print('str2: $str2');
  print('str3: $str3');
  // 2. 字符串的常用API
  // 2.1 字符串的长度
  print('str1.length: ${str1.length}');
  // 2.2 字符串的拼接
  String str4 = str1 + str2;
  print('str4: $str4');
  // 2.3 字符串的截取
  String str5 = str1.substring(0, 5);
  print('str5: $str5');
  // 2.4 字符串的分割
  List<String> str6 = str1.split(' ');
  print('str6: $str6');
  // 2.5 字符串的替换
  String str7 = str1.replaceAll('Hello', 'Hi');
  print('str7: $str7');
  // 3. 正则表达式
  // 3.1 正则表达式的声明
  RegExp regExp = RegExp(r'[a-z]+');
  // 3.2 正则表达式的常用方法
  // 3.2.1 正则表达式的匹配
  bool isMatch = regExp.hasMatch(str1);
  print('isMatch: $isMatch');
  // 3.2.2 正则表达式的替换
  String str8 = str1.replaceAll(regExp, 'Hi');
  print('str8: $str8');
}
